package com.cx.io;

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;

public class NIOExample {
    public static void main(String[] args) {
        // 打开文件通道，以只读方式打开example.txt文件
   try (FileChannel fileChannel = FileChannel.open(Paths.get("example.txt"), StandardOpenOption.READ)) {
            // 分配一个容量为1024的缓冲区
            ByteBuffer buffer = ByteBuffer.allocate(1024);
            // 循环读取文件内容
            while (fileChannel.read(buffer) != -1) {
                // 切换缓冲区为读模式
                buffer.flip();
                // 循环读取缓冲区内容
                while (buffer.hasRemaining()) {
                    // 输出缓冲区内容
                    System.out.print((char) buffer.get());
                }
                // 清空缓冲区
                buffer.clear();
            }
        } catch (IOException e) {
            // 输出异常信息
            e.printStackTrace();
        }
    }
}